In modern computing, computer programs that automate human tasks have become more common. Certain computer programs, which are referred to as automated robots or so-called “bots,” provide tools that automate tasks, such as crawling through webpages to scan and gather keywords, text and links. Computer programs can also masquerade as humans to gather information from websites, such as customer information, or automatically purchase large quantities of a desired commodity or a commodity being sold at a promotional price. Since a computer program can act automatically and more rapidly than a human, a computer program can compromise data for a large number of accounts or assist a single buyer in purchasing large quantities of a commodity in a short time span.
In a typical completely automated public Turing test to tell computers and humans apart (CAPTCHA), a computer provides an entity attempting to access a network resource with a test, the computer receives a response to the test from the user, and the computer evaluates whether or not the response to the test is correct. A CAPTCHA is designed to provide a test that is relatively simple for a human to solve, but, at the same time, poses a challenge for a computer to decipher. For example, a CAPTCHA might require a user to type letters or digits that appear in an image. Such an image is often distorted in some fashion to hinder a computer from using optical character recognition (OCR) technology to read the letters or digits that appear in the image. As the image is relatively easy to discern by a human, but is difficult for a computer to discern in an automated fashion, a correct solution to the test is presumed to have been submitted by a human.
CAPTCHAs are premised upon the rationale that humans solve visual puzzles more accurately than computers. However, as approaches for automatically circumventing CAPTCHAs have become more sophisticated, computer programs have been able to determine the text or digits within the CAPTCHAs with increased accuracy. To combat this escalation in program sophistication, CAPTCHAs have also evolved in an attempt to improve the security that they provide. Some modern CAPTCHAs provide more sophisticated tests, such as tests that require a user to distinguish real-world features appearing in images. Such a test might require a user to select a particular type of image from a group of images. For example, distinguishing a photograph of a dog from a photograph of a cat is simple for a human to accomplish, but such a task remains relatively difficult for a computer program to solve with consistency.